% 目标函数（最大化吸收率 = 最小化1-吸收率）
fun = @(x) 1 - hmm1(x);

% 参数边界（仅优化t1-t5）
lb = [0.10; 0.05; 0.01; 0.001; 0.05]; % 下限
ub = [0.11; 0.3;  0.1;  0.05;  0.2];  % 上限

% PSO选项设置
options = optimoptions('particleswarm', ...
    'SwarmSize', 50, ...       % 粒子数量
    'MaxIterations', 1000, ...  % 最大迭代次数
    'Display', 'iter', ...     % 显示优化过程
    'PlotFcn', @pswplotbestf); % 绘制优化曲线

% 运行PSO优化
[x_opt, fval] = particleswarm(fun, 5, lb, ub, options);

% 可视化吸收光谱
t1 = x_opt(1); t2 = x_opt(2); t3 = x_opt(3); t4 = x_opt(4); t5 = x_opt(5);
LPEM_TM_Lamellar_fefe;
figure;
plot(lamb_1, AA*100, 'LineWidth', 2);
xlabel('波长 (\mum)'); ylabel('吸收率 (%)');
title('优化后的吸收光谱');
grid on;
xlim([0.4 1.4]);
% 结果输出
best_absorption = 1 - fval;
fprintf('优化厚度: [%.4f, %.4f, %.4f, %.4f, %.4f]\n', x_opt);
fprintf('最佳吸收率: %.2f%%\n', best_absorption*100);